package com.proj;

import org.springframework.beans.factory.annotation.*;
import org.springframework.stereotype.*;


@Component
public class Core {

	@Autowired
	private CoreListener coreListener;
	
	public void core() {
		System.out.println("in core method!");
		CoreContext coreContext = new CoreContext();
		if (this.coreListener != null) {
			CoreEvent coreEvent = new CoreEvent(coreContext);
			this.coreListener.focus(coreEvent);
		}
		AutowiredAnnotationBeanPostProcessor p = null;
	}
	
	public void core(String arg) {
		System.out.println("in core method2![" + arg + "]");
	}
	

	public CoreListener getCoreListener() {
		return coreListener;
	}

	public void setCoreListener(CoreListener coreListener) {
		this.coreListener = coreListener;
	}
	
	
}
/*
 * 
 * 编程法,配置文件,
 * 
 * 转发、委托、回调
 * 构造方法、setter方法、普通方法
 * 将自身委托出去,提供一个上下文对象,
 * 
 * 完备的切入点理论,被通知对象对通知的一无所知.
 * 
 * 在整个流程中包含的步骤，包含那些概念，那些步骤是可以替换的，那些概念是可以替换的，
 * 
 * 对象的生命周期:实例化,初始化,使用,销毁,
 * 实例化的方式:new 关键字,反射,clone,反序列化,
 */
